<?php
declare (strict_types = 1);

namespace app\index\controller;

use app\Request;
use think\facade\View;

class Index
{
    public function index()
    {

        // [控制器定义]
        // 目录              小写加下划线
        // 命名空间          根据文件所在目录位置命名
        // 类名 类文件名     首字母大写(类文件以.php 结尾为后缀)  第二个单词首字母大写以此类推(大驼峰法)
        // 方法             首字母小写                          第二个单词首字母大写以此类推(小驼峰法)

        // [视图层定义]
        // View 选择facade的门面类   ->fetch()
        // 视图的目录对应控制器       小写加下划线
        // 视图文件名                对应控制器方法      大写转小写加下划线(以.html结尾为后缀)

        // ->fetch()参数
        //模板路径:应用@控制器/方法                (应用@模板目录/模板文件)

        return View::fetch();
    }
    public function indexDemol()
    {

        return View::fetch();
    }
    public function demo()
    {
        return 'demo方法';
    }
    public function indexl()
    {
        //[模板赋值]
        //赋值标量(字符串,整型,浮点,布尔值) is_scalar() 判断标量
        View::assign("title","后台首页-index");//输出写法  {$title}
//        echo is_scalar(123);
        //赋值一维数组
        $arr = [1,2,3,4];//索引数组
        $arr1 = ['name'=>'唐僧','age'=>28];//关联数组
        View::assign('arr',$arr);//{$arr[0]}--{$arr.3}
        View::assign('arr1',$arr1);//{$arr1['name']}--{$arr1.age}
        //赋值多维数组
        $arr2=[
            ['id'=>1,'name'=>'sanzang'],
            ['id'=>2,'name'=>'wukong'],
            ['id'=>3,'name'=>'wuneng'],
            ['id'=>4,'name'=>'wujing'],
        ];
        View::assign('arr2',$arr2);//{$arr2.0.id}=={$arr2[2]['name']}
        //赋值对象
        $obj = new \stdClass();
        $obj->id = 5;
        $obj->name = 'duixiang';
        View::assign('obj',$obj);//{$obj->id} == {$obj:name}
        //批量赋值
        $arr3=['name'=>'唐僧','age'=>28];
        View::assign($arr3);//{$name} == {$age}
        View::assign(['name'=>'唐僧','age'=>28]);//{$name} == {$age}
        //模板注释  模板标签内用//单行注释        /* */多行注释       {//$name}=={//$age}

        //模板中使用函数
        $line='asdasdad';
        $time=time();
        $xiao='abc';
        View::assign('xiao',$xiao);
        View::assign('time',$time);
        View::assign('line',$line);
        View::assign('a',"&lt;");
        //用管道符分割 函数的执行顺序 从前到后执行 对应PHP原生是从里到外
        View::assign('value',null);



        return View::fetch();
    }
    public function forxh()
    {
        $name="2";
        $value="2";
        View::assign('name',$name);
        View::assign('value',$value);
        $num=60;
        View::assign('num',$num);
        return View::fetch();
    }
    public function qingqiu()
    {
        //请求接参
//        $name = \think\facade\Request::param('name');

//        View::assign('name',$name);

        //域名
//        $host = \think\facade\Request::host();
        //当前完整url
//        $url = \think\facade\Request::url();
//        echo "<hr>";
//        echo $host.$url;
        //当前请求URL的pathinfo信息(含URL后缀)
//        $pathinfo = \think\facade\Request::pathinfo();
//        echo $pathinfo;

//        $type = \think\facade\Request::ext();
//        echo $type;

//        echo '应用名'.app('http')->getName();
//
//        echo '控制器'.\think\facade\Request::controller();
//
//        echo '方法名'.\think\facade\Request::action();


        //接参
        //has():判断接参变量是否设置 返回布尔值
        //接参方式:param,post,get,file;
        //参数1:变量/修饰符
        //变量:接参值得变量名,不写参数接全部参数
        //修饰符:将数据转为对应的类型(s,a,b,d,f)
        //参数2:默认值
        //参数3:过滤方法(多个方法用逗号隔开) 使用全局过滤变量用''不设置参数,不使用用NULL
        //input():助手函数;
//        var_dump(\think\facade\Request::has('name','get'));

//        echo \think\facade\Request::param('name');
//        $post=\think\facade\Request::post('name');
//        $file=\think\facade\Request::file();
//        var_dump($file);
//        echo "<pre>";
//        print_r($file);
//        echo "</pre>";

        echo input('name');
        echo input('age');
        echo input('id');

        return View::fetch();
    }
}
